var obj = {
    name: 'zhangsan',
    age: 20
}

// 使用数据属性 向对象中添加一个新的属性
Object.defineProperty(obj, 'gender', {
    // 控制能否被 delete 方法删除
    configurable: false,
    // 是否可枚举
    enumerable: true,
    // 是否可以修改属性的值
    writable: false,
    // 属性的值
    value: '男'
})

// delete obj.gender
// obj.gender = '女'
// console.log(obj);

// 批量的一次性添加多个定义属性
Object.defineProperties(obj, {
    height: {
        value: 1.78
    },
    hobby: {
        // 控制能否被 delete 方法删除
        configurable: false,
        // 是否可枚举
        enumerable: true,
        // 是否可以修改属性的值
        writable: false,
        // 属性的值
        value: '男'
    }
})
// console.log(obj);

// 读取属性的特性
console.log(Object.getOwnPropertyDescriptor(obj, 'gender'));
console.log(Object.getOwnPropertyDescriptors(obj));

